#ifdef KITSCHY_DEBUG_MEMORY 
#include "debug_memorymanager.h"
#endif

#ifdef WIN32
#include "windows.h"
#endif

#include "stdio.h"
#include "string.h"
#include "math.h"
#include "stdlib.h"

#include <GL/gl.h>
#include <GL/glut.h>

#include "BList.h"
#include "symbol.h"
#include "BVector.h"
#include "geometrics.h"
#include "CMC.h"
#include "quaternion.h"

#include "myglutaux.h"

#include "AWEntity.h"
#include "3dobject.h"

#include "AWScenario.h"
#include "AWPlaneScenario.h"


AW_PlaneScenario::AW_PlaneScenario() : AW_Scenario() 
{
	class_name->set("AW_PlaneScenario");
	sizex=1;
	sizez=1;
} /* AW_PlaneScenario::AW_PlaneScenario */ 


AW_PlaneScenario::AW_PlaneScenario(FILE *fp) 
{
	class_name->set("AW_PlaneScenario");
	load(fp);
} /* AW_PlaneScenario::AW_PlaneScenario */ 


bool AW_PlaneScenario::load(FILE *fp)
{
	if (!AW_Scenario::load(fp)) return false;
	if (2!=fscanf(fp,"%f %f",&sizex,&sizez)) return false;
	if (3!=fscanf(fp,"%f %f %f",&r,&g,&b)) return false;

	return true;
} /* AW_PlaneScenario::load */ 


bool AW_PlaneScenario::save(FILE *fp)
{
	if (!AW_Scenario::save(fp)) return false;
	fprintf(fp,"%f %f\n",sizex,sizez);
	fprintf(fp,"%f %f %f\n",r,g,b);

	return true;
} /* AW_PlaneScenario::save */ 


void AW_PlaneScenario::draw(void)
{
	/* Escenario: */ 
	glColor3f(r,g,b);
	glPushMatrix();
	glTranslatef(0,0.2F,0);
	glutSolidBox(sizex,0.2F,sizez);
	glPopMatrix();

} /* AW_PlaneScenario::draw */ 


bool AW_PlaneScenario::is_a(char *c)
{
	if (strcmp(c,"AW_PlaneScenario")==0) return true;

	return AW_Scenario::is_a(c);
} /* AW_PlaneScenario::is_a */ 


bool AW_PlaneScenario::is_a(Symbol *c)
{
	if (c->cmp("AW_PlaneScenario")) return true;

	return AW_Scenario::is_a(c);
} /* AW_PlaneScenario::is_a */ 
